Computer data networks, and particularly the Internet, allow users to access software on separate computers located either nearby or at great distances from the user. These remotely-accessed software applications sometimes involve display to the user of computer-rendered images which represent views of virtual three-dimensional scenes.
A number of systems have been developed which provide for fairly quick turnaround time for preparation and display of rendered images of virtual scenes. The rate of image rendering can even be fast enough that images can be rendered in sequence at a rate that can approximate or achieve real-time graphics interaction of the user with the remote application.
The most common of these high-speed graphics rendering systems are based on dedicated “graphics pipeline” hardware in the user's computer. In these graphics pipeline systems, the remote application server transmits simple scene data over the network to the user computer. This scene data typically comprises data defining a group of triangles, or “primitives”, that make up the objects of the three-dimensional scene. At the user computer, the scene data is sent to a separate graphics pipeline circuit board of the user computer, such as Open GL graphics H/W sold by Silicon Graphics or NVIDIA.
The graphics hardware renders a rasterized image representing a view of the virtual scene from the scene data by a series of discrete and independent computation steps. The circuit performs these computation steps like an assembly line, or “pipeline”, or parallel calculations in which several images are simultaneously proceeding through the circuitry in varying states of completion. This circuit provides for rendering of serial images separated by close increments of time, which provides a flow of images that is fast enough to approximate sequential frames of video.
Unfortunately, although images can be rendered fairly quickly and close together by graphics pipeline hardware, the resulting images are very coarse and unrealistic. For example, usually the image does not contain any shadows, and the surfaces have an unrealistically uniform quality.
At the same time, increasing demand for more complex scenes is increasing the amount of scene data needed for a 3-D scene, which places even greater demands on the limited power of pipeline graphics cards. Improvements in communications protocols have increased data transmission rates, but the amount of scene data that is desired for transfer is becoming prohibitively large, despite these increases. As an example, the actual image pixel data for frames of the film “Star Wars: the Phantom Menace” each represented about 25 megabytes of data, while the scene data that defined the scenes ran as high as approximately 10 to 15 gigabytes of data, i.e., hundreds of times larger.